#pragma once
#include <iostream>
#include <semaphore.h>

class Sem
{
public:
    Sem(int value=1)
    {
        int n=sem_init(&_sem,0,value);
        (void)n;
    }
    ~Sem()
    {
        int n=sem_destroy(&_sem);
        (void)n;
    }
    void  P()
    {
        int n=sem_wait(&_sem);
        (void)n;
    
    }
    void V()
    {
        int n=sem_post(&_sem);
        (void)n;
    }

private:
    sem_t _sem;
};